#ifndef SOCKETS_H_
#define SOCKETS_H_

///SELECT
/** Lee Datos de tamaño Longitud de un socket cuyo descriptor es fd.
 * Devuelve el numero de bytes leidos o -1 si ha habido error */
int32_t Lee_Socket (int32_t fd, char *Datos, int32_t Longitud);

/** Envia Datos de tamaño Longitud por el socket cuyo descriptor es fd.
 * Devuelve el número de bytes escritos o -1 si ha habido error. */
int32_t Escribe_Socket (int32_t fd, int32_t *Datin, int32_t Longitud);
/////FIN SELECT


int32_t handshake_verificar(char*payload);
int32_t conectar(char * sIP_remoto, int32_t iPuerto_remoto_para_el_socket);
int32_t prepararSocketUnix(char *NOMBRE_PROCESO);
int32_t prepararSocketInet(char * NOMBRE_PROCESO);
int32_t escucha(int32_t listener, int32_t CantMaxClientes, char * NOMBRE_PROCESO);
int32_t cerrar(int32_t iDescriptor_del_socket);
int32_t escuchaSocketUN(int32_t iDescriptor_del_socket, char * NOMBRE_PROCESO);


int32_t crearConexionConSocket(int32_t puertoFSSyDisco, int32_t* ficheroServer, struct sockaddr_in* server);

int32_t socketInet_abrir (int32_t puerto);

int32_t conexionCliente_Aceptar (int32_t Descriptor);


#endif /* SOCKETS_H_ */
